package vip.xiaonuo.smzq.modular.kcl.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import vip.xiaonuo.smzq.modular.kcl.entity.Clbdcjl;
import vip.xiaonuo.smzq.modular.kcl.entity.Wjglb;
import vip.xiaonuo.smzq.modular.kcl.entity.param.ClbdcjlParam;
import vip.xiaonuo.smzq.modular.kcl.entity.vo.KslsVo;
import vip.xiaonuo.smzq.modular.kcl.mapper.ClbdcjlMapper;
import vip.xiaonuo.smzq.modular.kcl.mapper.WjglbMapper;
import vip.xiaonuo.smzq.modular.kcl.service.IClbdcjlService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import vip.xiaonuo.common.page.CommonPageRequest;

import javax.annotation.Resource;
import java.io.File;

/**
 * 储量表导出记录表 服务实现类
 *
 * @author sqq
 * @since 2024-11-04
 */
@Service
public class ClbdcjlServiceImpl extends ServiceImpl<ClbdcjlMapper, Clbdcjl> implements IClbdcjlService {

    @Resource
    private ClbdcjlMapper clbdcjlMapper;

    //文件上传关联
    @Resource
    private WjglbMapper wjglbMapper;

    /**
     * 储量表导出记录表分页查询
     *
     * @author sqq
     * @date 2024-11-04
     */
    @Override
    public Page<Clbdcjl> page(ClbdcjlParam clbdcjl) {
        LambdaQueryWrapper<Clbdcjl> queryWrapper = new LambdaQueryWrapper<>();

        //返回分页对象
        Page<Clbdcjl> resultPage = new Page<>();
        resultPage.setSize(clbdcjl.getSize());
        resultPage.setCurrent(clbdcjl.getCurrent());
        //导出矿产大类
        if (clbdcjl.getDcdbm() != null ) {
            queryWrapper.eq(Clbdcjl::getDcdbm, clbdcjl.getDcdbm());
        }

        //导出人
        if (clbdcjl.getCzrxm() != null && !clbdcjl.getCzrxm().equals("")) {
            queryWrapper.like(Clbdcjl::getCzrxm, clbdcjl.getCzrxm());
        }

        //导出时间
        if (clbdcjl.getCzsj() != null && !clbdcjl.getCzsj().equals("")) {
            queryWrapper.likeRight(Clbdcjl::getCzsj, clbdcjl.getCzsj());
        }
        resultPage.setTotal(clbdcjlMapper.selectCount(queryWrapper));
        queryWrapper.orderByAsc(Clbdcjl::getCzsj);





        return clbdcjlMapper.selectPage(resultPage, queryWrapper);
    }

    /**
     * 删除储量记录以及关联文件
     *
     * @author sqq
     * @date 2024-11-04
     */
    @Override
    public void delect(Clbdcjl clbdcjl) {

        if (clbdcjl.getPkid() != null) {
            //查询行数据
            clbdcjl = clbdcjlMapper.selectById(clbdcjl.getPkid());

            if (clbdcjl.getWjid() != null) {
                //查询其关联文件
                Wjglb Wjglb = wjglbMapper.selectById(clbdcjl.getWjid());
                //删除文件
                if (Wjglb != null && Wjglb.getWjlj() != null) {
                    File file = new File(Wjglb.getWjlj());
                    if (file.exists()) {
                        file.delete();
                    }
                }
                //删除文件关联数据
                wjglbMapper.deleteById(clbdcjl.getWjid());

            }
            //删除行数据
            clbdcjlMapper.deleteById(clbdcjl.getPkid());
        }

    }
}
